package java_1_11;

public abstract class CaffeineBeverage {
    /**
     * 制作流程-标准化-封装到父类中，子类只有使用权没有修改权
     * 这里的封装是让整体的制作流程定义为final修饰，让子类不能覆写此方法(因为覆写就能做到修改了，父类不能限制到子类的修改了)
     */
    public final void prepareRecipe(){
        boilWater();//烧水-父类实现
        brew();//冲、泡，不同饮料不同冲泡方法-子类实现
        pourIncup();//倒入杯子-父类实现
        addCondiments();//加调味品，不同饮品添加不同调味品-具体到子类
    }
    public abstract void brew();
    public abstract void addCondiments();
    private void pourIncup() {
        System.out.println("倒入杯中");
    }

    private void boilWater() {
        System.out.println("烧水");
    }
}
